package com.sh.data.engine.domain.taskalarm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sh.data.engine.domain.base.model.PageResult;
import com.sh.data.engine.domain.datadev.offline.model.param.OfflineDevTaskAlarmParam;
import com.sh.data.engine.domain.taskalarm.model.domain.DataIntegrationTaskDomain;
import com.sh.data.engine.domain.taskalarm.model.domain.TaskAlarmConfigDetailDomain;
import com.sh.data.engine.domain.taskalarm.model.domain.TaskAlarmConfigDomain;
import com.sh.data.engine.domain.taskalarm.model.param.TaskAlarmConfigParam;
import com.sh.data.engine.domain.workspace.manager.model.domain.UserDomain;
import com.sh.data.engine.repository.dao.taskalarm.entity.TaskAlarmConfigEntity;

import java.util.List;

/**
 * @author tinglan.ys
 * @description:
 * @date 2022/3/30 下午4:44
 */
public interface TaskAlarmService extends IService<TaskAlarmConfigEntity> {

    Boolean saveAlarmConfig(TaskAlarmConfigParam taskAlarmConfigParam);

    List<UserDomain> getReceiver();

    Boolean del(Long id);

    PageResult<TaskAlarmConfigDomain> getList(
        Integer subjectType,
        Integer receiveType,
        Integer alarmType,
        String receiverName,
        String creatorName,
        Integer pageNum,
        Integer pageSize,
        Long projectId);

    /**
     * @description : 这个方法重写@fuchen
     * @author : tinglan.ys
     * @date : 2022/5/6
     */
    boolean saveTaskFlowAlarmConfig(OfflineDevTaskAlarmParam offlineDevTaskAlarmParam);

    List<DataIntegrationTaskDomain> getTaskName(Integer taskType);

    List<UserDomain> getReceiverFromUser();

    TaskAlarmConfigDetailDomain detail(Long id);
}
